package so.sao.shop.supplier.service;

import so.sao.shop.supplier.pojo.Result;
import so.sao.shop.supplier.pojo.input.DeliverGoodsInput;
import so.sao.shop.supplier.pojo.input.ExchangePurchaseItemInput;
import so.sao.shop.supplier.pojo.input.ReturnPurchaseSelectInput;

/**
 * <p>Version: New shop-1.2.0 V1.1.0 </p>
 * <p>Title: ReturnAndExchangeService</p>
 * <p>Description: 订单退换货service</p>
 *
 * @author: zhaoyan
 * @Date: Created in 2017/11/29 10:35
 */
public interface ReturnAndExchangeService {
    /**
     * 查询换货列表，供应商与管理员通用
     * @param exchangePurchaseItemInput 换货列表入参对象
     * @return result
     */
    Result searchExchange(ExchangePurchaseItemInput exchangePurchaseItemInput);


    /**
     * 查询退换货详情信息
     * @param detailsId 详情编号ID
     * @return result
     */
    Result getReturnAndExchangeDetail(Long detailsId);
	
	/**
     * 退货列表
     * @param returnPurchaseSelectInput 退货列表入参对象
     * @return PageInfo<ReturnPurchasesVo>
     */
    Result searchOrders(ReturnPurchaseSelectInput returnPurchaseSelectInput);

    /**
     * 子订单退换货审核
     * @param detailsId 详情编号ID
     * @param status 审核结果状态
     * @param refuseReason 审核拒绝原因描述
     * @return result
     */
    Result auditPurchaseItem(Long detailsId, int status, String refuseReason);

    /**
     * 添加订单换货寄出货物流信息
     * @param deliverGoodsInput 物流对象入参
     * @return result
     */
    Result deliverGoods(DeliverGoodsInput deliverGoodsInput);
}
